<?php

declare(strict_types=1);

namespace ImiApp\ApiServer\Api\Model\Base;

use Imi\Config\Annotation\ConfigValue;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Entity;
use Imi\Model\Annotation\Table;
use ImiApp\ImiServer\AbstractModel as Model;

/**
 * 订单商品明细 基类.
 *
 * @Entity(camel=false, bean=true, incrUpdate=false)
 * @Table(name=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\OrderItem.name", default="fa_order_item"), usePrefix=false, id={"id"}, dbPoolName=@ConfigValue(name="@app.models.ImiApp\ApiServer\Api\Model\OrderItem.poolName"))
 * @DDL(sql="CREATE TABLE `fa_order_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL COMMENT '用户',
  `order_id` int(11) NOT NULL DEFAULT '0' COMMENT '订单',
  `goodslog_id` int(11) DEFAULT NULL COMMENT '商品历史ID',
  `goods_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品',
  `goods_type` varchar(30) NOT NULL DEFAULT 'normal' COMMENT '商品类型:normal=实体商品,virtual=虚拟商品,service=服务',
  `goods_sku_price_id` int(11) NOT NULL DEFAULT '0' COMMENT '规格 id',
  `activity_id` int(11) NOT NULL DEFAULT '0' COMMENT '活动 id',
  `activity_type` varchar(255) DEFAULT NULL COMMENT '活动类型',
  `item_goods_sku_price_id` int(11) NOT NULL DEFAULT '0' COMMENT '活动规格|积分商城规格 id',
  `goods_sku_text` varchar(60) DEFAULT NULL COMMENT '规格名',
  `goods_title` varchar(255) DEFAULT NULL COMMENT '商品名称',
  `goods_image` varchar(255) DEFAULT NULL COMMENT '商品图片',
  `goods_original_price` decimal(10,2) NOT NULL COMMENT '商品原价',
  `discount_fee` decimal(10,2) DEFAULT NULL COMMENT '优惠费用',
  `goods_price` decimal(10,2) NOT NULL COMMENT '商品价格',
  `goods_num` int(11) NOT NULL DEFAULT '0' COMMENT '购买数量',
  `goods_weight` int(11) NOT NULL DEFAULT '0' COMMENT '商品重量',
  `pay_price` decimal(10,2) NOT NULL COMMENT '支付金额(不含运费)',
  `dispatch_status` tinyint(2) NOT NULL DEFAULT '0' COMMENT '发货状态:0=未发货,1=已发货,2=已收货',
  `dispatch_fee` decimal(10,2) DEFAULT NULL COMMENT '发货费用',
  `dispatch_type` varchar(20) DEFAULT NULL COMMENT '发货方式',
  `dispatch_id` int(11) DEFAULT NULL COMMENT '发货模板',
  `store_id` int(11) NOT NULL DEFAULT '0' COMMENT '门店',
  `aftersale_status` tinyint(2) NOT NULL COMMENT '售后状态:-1=拒绝,0=未申请,1=申请售后,2=售后完成',
  `comment_status` tinyint(2) NOT NULL COMMENT '评价状态:0=未评价,1=已评价',
  `refund_status` tinyint(1) DEFAULT NULL COMMENT '退款状态:-1=拒绝退款,0=无,1=申请中,2=同意',
  `refund_fee` decimal(10,2) DEFAULT NULL COMMENT '退款金额',
  `refund_msg` varchar(255) DEFAULT NULL COMMENT '退款原因',
  `express_name` varchar(60) DEFAULT NULL COMMENT '快递公司',
  `express_code` varchar(60) DEFAULT NULL COMMENT '快递公司编号',
  `express_no` varchar(60) DEFAULT NULL COMMENT '快递单号',
  `ext` varchar(2048) DEFAULT NULL COMMENT '附加字段',
  `createtime` int(11) DEFAULT NULL COMMENT '添加时间',
  `updatetime` int(11) DEFAULT NULL COMMENT '更新时间',
  `deletetime` int(11) DEFAULT NULL COMMENT '删除时间',
  `coupon_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '平台优惠券抵用金额',
  `goods_amount` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品总价',
  `total_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '支付金额',
  `item_pay_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '单件实际支付金额',
  `item_shell_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '单件支付贝壳总数',
  `item_score_fee` decimal(11,2) NOT NULL DEFAULT '0.00' COMMENT '单件积分支付数',
  `item_score_money_fee` decimal(11,2) NOT NULL DEFAULT '0.00' COMMENT '单件积分服务费金额',
  PRIMARY KEY (`id`) USING BTREE,
  KEY `order_id` (`order_id`) USING BTREE,
  KEY `store_id` (`store_id`) USING BTREE,
  KEY `activity_id` (`activity_id`) USING BTREE,
  KEY `goods_id` (`goods_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单商品明细'", decode="")
 *
 * @property int|null $id 
 * @property int|null $userId 用户
 * @property int|null $orderId 订单
 * @property int|null $goodslogId 商品历史ID
 * @property int|null $goodsId 商品
 * @property string|null $goodsType 商品类型:normal=实体商品,virtual=虚拟商品,service=服务
 * @property int|null $goodsSkuPriceId 规格 id
 * @property int|null $activityId 活动 id
 * @property string|null $activityType 活动类型
 * @property int|null $itemGoodsSkuPriceId 活动规格|积分商城规格 id
 * @property string|null $goodsSkuText 规格名
 * @property string|null $goodsTitle 商品名称
 * @property string|null $goodsImage 商品图片
 * @property string|float|int|null $goodsOriginalPrice 商品原价
 * @property string|float|int|null $discountFee 优惠费用
 * @property string|float|int|null $goodsPrice 商品价格
 * @property int|null $goodsNum 购买数量
 * @property int|null $goodsWeight 商品重量
 * @property string|float|int|null $payPrice 支付金额(不含运费)
 * @property int|null $dispatchStatus 发货状态:0=未发货,1=已发货,2=已收货
 * @property string|float|int|null $dispatchFee 发货费用
 * @property string|null $dispatchType 发货方式
 * @property int|null $dispatchId 发货模板
 * @property int|null $storeId 门店
 * @property int|null $aftersaleStatus 售后状态:-1=拒绝,0=未申请,1=申请售后,2=售后完成
 * @property int|null $commentStatus 评价状态:0=未评价,1=已评价
 * @property int|null $refundStatus 退款状态:-1=拒绝退款,0=无,1=申请中,2=同意
 * @property string|float|int|null $refundFee 退款金额
 * @property string|null $refundMsg 退款原因
 * @property string|null $expressName 快递公司
 * @property string|null $expressCode 快递公司编号
 * @property string|null $expressNo 快递单号
 * @property string|null $ext 附加字段
 * @property int|null $createtime 添加时间
 * @property int|null $updatetime 更新时间
 * @property int|null $deletetime 删除时间
 * @property string|float|int|null $couponFee 平台优惠券抵用金额
 * @property string|float|int|null $goodsAmount 商品总价
 * @property string|float|int|null $totalFee 支付金额
 * @property string|float|int|null $itemPayFee 单件实际支付金额
 * @property string|float|int|null $itemShellFee 单件支付贝壳总数
 * @property string|float|int|null $itemScoreFee 单件积分支付数
 * @property string|float|int|null $itemScoreMoneyFee 单件积分服务费金额
 */
abstract class OrderItemBase extends Model
{
    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEY = 'id';

    /**
     * {@inheritdoc}
     */
    public const PRIMARY_KEYS = ["id"];

    /**
     * id.
     * @Column(name="id", type="int", length=11, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $id = NULL;

    /**
     * 获取 id.
     *
     * @return int|null
     */
    public function getId(): ?int
    {
        return $this->id;
    }

    /**
     * 赋值 id.
     * @param int|null $id id
     * @return static
     */
    public function setId($id)
    {
        $this->id = null === $id ? null : (int)$id;
        return $this;
    }

    /**
     * 用户.
     * user_id
     * @Column(name="user_id", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $userId = NULL;

    /**
     * 获取 userId - 用户.
     *
     * @return int|null
     */
    public function getUserId(): ?int
    {
        return $this->userId;
    }

    /**
     * 赋值 userId - 用户.
     * @param int|null $userId user_id
     * @return static
     */
    public function setUserId($userId)
    {
        $this->userId = null === $userId ? null : (int)$userId;
        return $this;
    }

    /**
     * 订单.
     * order_id
     * @Column(name="order_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $orderId = 0;

    /**
     * 获取 orderId - 订单.
     *
     * @return int|null
     */
    public function getOrderId(): ?int
    {
        return $this->orderId;
    }

    /**
     * 赋值 orderId - 订单.
     * @param int|null $orderId order_id
     * @return static
     */
    public function setOrderId($orderId)
    {
        $this->orderId = null === $orderId ? null : (int)$orderId;
        return $this;
    }

    /**
     * 商品历史ID.
     * goodslog_id
     * @Column(name="goodslog_id", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $goodslogId = NULL;

    /**
     * 获取 goodslogId - 商品历史ID.
     *
     * @return int|null
     */
    public function getGoodslogId(): ?int
    {
        return $this->goodslogId;
    }

    /**
     * 赋值 goodslogId - 商品历史ID.
     * @param int|null $goodslogId goodslog_id
     * @return static
     */
    public function setGoodslogId($goodslogId)
    {
        $this->goodslogId = null === $goodslogId ? null : (int)$goodslogId;
        return $this;
    }

    /**
     * 商品.
     * goods_id
     * @Column(name="goods_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $goodsId = 0;

    /**
     * 获取 goodsId - 商品.
     *
     * @return int|null
     */
    public function getGoodsId(): ?int
    {
        return $this->goodsId;
    }

    /**
     * 赋值 goodsId - 商品.
     * @param int|null $goodsId goods_id
     * @return static
     */
    public function setGoodsId($goodsId)
    {
        $this->goodsId = null === $goodsId ? null : (int)$goodsId;
        return $this;
    }

    /**
     * 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     * goods_type
     * @Column(name="goods_type", type="varchar", length=30, accuracy=0, nullable=false, default="normal", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $goodsType = 'normal';

    /**
     * 获取 goodsType - 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     *
     * @return string|null
     */
    public function getGoodsType(): ?string
    {
        return $this->goodsType;
    }

    /**
     * 赋值 goodsType - 商品类型:normal=实体商品,virtual=虚拟商品,service=服务.
     * @param string|null $goodsType goods_type
     * @return static
     */
    public function setGoodsType($goodsType)
    {
        $this->goodsType = null === $goodsType ? null : (string)$goodsType;
        return $this;
    }

    /**
     * 规格 id.
     * goods_sku_price_id
     * @Column(name="goods_sku_price_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $goodsSkuPriceId = 0;

    /**
     * 获取 goodsSkuPriceId - 规格 id.
     *
     * @return int|null
     */
    public function getGoodsSkuPriceId(): ?int
    {
        return $this->goodsSkuPriceId;
    }

    /**
     * 赋值 goodsSkuPriceId - 规格 id.
     * @param int|null $goodsSkuPriceId goods_sku_price_id
     * @return static
     */
    public function setGoodsSkuPriceId($goodsSkuPriceId)
    {
        $this->goodsSkuPriceId = null === $goodsSkuPriceId ? null : (int)$goodsSkuPriceId;
        return $this;
    }

    /**
     * 活动 id.
     * activity_id
     * @Column(name="activity_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $activityId = 0;

    /**
     * 获取 activityId - 活动 id.
     *
     * @return int|null
     */
    public function getActivityId(): ?int
    {
        return $this->activityId;
    }

    /**
     * 赋值 activityId - 活动 id.
     * @param int|null $activityId activity_id
     * @return static
     */
    public function setActivityId($activityId)
    {
        $this->activityId = null === $activityId ? null : (int)$activityId;
        return $this;
    }

    /**
     * 活动类型.
     * activity_type
     * @Column(name="activity_type", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $activityType = NULL;

    /**
     * 获取 activityType - 活动类型.
     *
     * @return string|null
     */
    public function getActivityType(): ?string
    {
        return $this->activityType;
    }

    /**
     * 赋值 activityType - 活动类型.
     * @param string|null $activityType activity_type
     * @return static
     */
    public function setActivityType($activityType)
    {
        $this->activityType = null === $activityType ? null : (string)$activityType;
        return $this;
    }

    /**
     * 活动规格|积分商城规格 id.
     * item_goods_sku_price_id
     * @Column(name="item_goods_sku_price_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $itemGoodsSkuPriceId = 0;

    /**
     * 获取 itemGoodsSkuPriceId - 活动规格|积分商城规格 id.
     *
     * @return int|null
     */
    public function getItemGoodsSkuPriceId(): ?int
    {
        return $this->itemGoodsSkuPriceId;
    }

    /**
     * 赋值 itemGoodsSkuPriceId - 活动规格|积分商城规格 id.
     * @param int|null $itemGoodsSkuPriceId item_goods_sku_price_id
     * @return static
     */
    public function setItemGoodsSkuPriceId($itemGoodsSkuPriceId)
    {
        $this->itemGoodsSkuPriceId = null === $itemGoodsSkuPriceId ? null : (int)$itemGoodsSkuPriceId;
        return $this;
    }

    /**
     * 规格名.
     * goods_sku_text
     * @Column(name="goods_sku_text", type="varchar", length=60, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $goodsSkuText = NULL;

    /**
     * 获取 goodsSkuText - 规格名.
     *
     * @return string|null
     */
    public function getGoodsSkuText(): ?string
    {
        return $this->goodsSkuText;
    }

    /**
     * 赋值 goodsSkuText - 规格名.
     * @param string|null $goodsSkuText goods_sku_text
     * @return static
     */
    public function setGoodsSkuText($goodsSkuText)
    {
        $this->goodsSkuText = null === $goodsSkuText ? null : (string)$goodsSkuText;
        return $this;
    }

    /**
     * 商品名称.
     * goods_title
     * @Column(name="goods_title", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $goodsTitle = NULL;

    /**
     * 获取 goodsTitle - 商品名称.
     *
     * @return string|null
     */
    public function getGoodsTitle(): ?string
    {
        return $this->goodsTitle;
    }

    /**
     * 赋值 goodsTitle - 商品名称.
     * @param string|null $goodsTitle goods_title
     * @return static
     */
    public function setGoodsTitle($goodsTitle)
    {
        $this->goodsTitle = null === $goodsTitle ? null : (string)$goodsTitle;
        return $this;
    }

    /**
     * 商品图片.
     * goods_image
     * @Column(name="goods_image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $goodsImage = NULL;

    /**
     * 获取 goodsImage - 商品图片.
     *
     * @return string|null
     */
    public function getGoodsImage(): ?string
    {
        return $this->goodsImage;
    }

    /**
     * 赋值 goodsImage - 商品图片.
     * @param string|null $goodsImage goods_image
     * @return static
     */
    public function setGoodsImage($goodsImage)
    {
        $this->goodsImage = null === $goodsImage ? null : (string)$goodsImage;
        return $this;
    }

    /**
     * 商品原价.
     * goods_original_price
     * @Column(name="goods_original_price", type="decimal", length=10, accuracy=2, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $goodsOriginalPrice = NULL;

    /**
     * 获取 goodsOriginalPrice - 商品原价.
     *
     * @return string|float|int|null
     */
    public function getGoodsOriginalPrice()
    {
        return $this->goodsOriginalPrice;
    }

    /**
     * 赋值 goodsOriginalPrice - 商品原价.
     * @param string|float|int|null $goodsOriginalPrice goods_original_price
     * @return static
     */
    public function setGoodsOriginalPrice($goodsOriginalPrice)
    {
        $this->goodsOriginalPrice = null === $goodsOriginalPrice ? null : $goodsOriginalPrice;
        return $this;
    }

    /**
     * 优惠费用.
     * discount_fee
     * @Column(name="discount_fee", type="decimal", length=10, accuracy=2, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $discountFee = NULL;

    /**
     * 获取 discountFee - 优惠费用.
     *
     * @return string|float|int|null
     */
    public function getDiscountFee()
    {
        return $this->discountFee;
    }

    /**
     * 赋值 discountFee - 优惠费用.
     * @param string|float|int|null $discountFee discount_fee
     * @return static
     */
    public function setDiscountFee($discountFee)
    {
        $this->discountFee = null === $discountFee ? null : $discountFee;
        return $this;
    }

    /**
     * 商品价格.
     * goods_price
     * @Column(name="goods_price", type="decimal", length=10, accuracy=2, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $goodsPrice = NULL;

    /**
     * 获取 goodsPrice - 商品价格.
     *
     * @return string|float|int|null
     */
    public function getGoodsPrice()
    {
        return $this->goodsPrice;
    }

    /**
     * 赋值 goodsPrice - 商品价格.
     * @param string|float|int|null $goodsPrice goods_price
     * @return static
     */
    public function setGoodsPrice($goodsPrice)
    {
        $this->goodsPrice = null === $goodsPrice ? null : $goodsPrice;
        return $this;
    }

    /**
     * 购买数量.
     * goods_num
     * @Column(name="goods_num", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $goodsNum = 0;

    /**
     * 获取 goodsNum - 购买数量.
     *
     * @return int|null
     */
    public function getGoodsNum(): ?int
    {
        return $this->goodsNum;
    }

    /**
     * 赋值 goodsNum - 购买数量.
     * @param int|null $goodsNum goods_num
     * @return static
     */
    public function setGoodsNum($goodsNum)
    {
        $this->goodsNum = null === $goodsNum ? null : (int)$goodsNum;
        return $this;
    }

    /**
     * 商品重量.
     * goods_weight
     * @Column(name="goods_weight", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $goodsWeight = 0;

    /**
     * 获取 goodsWeight - 商品重量.
     *
     * @return int|null
     */
    public function getGoodsWeight(): ?int
    {
        return $this->goodsWeight;
    }

    /**
     * 赋值 goodsWeight - 商品重量.
     * @param int|null $goodsWeight goods_weight
     * @return static
     */
    public function setGoodsWeight($goodsWeight)
    {
        $this->goodsWeight = null === $goodsWeight ? null : (int)$goodsWeight;
        return $this;
    }

    /**
     * 支付金额(不含运费).
     * pay_price
     * @Column(name="pay_price", type="decimal", length=10, accuracy=2, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $payPrice = NULL;

    /**
     * 获取 payPrice - 支付金额(不含运费).
     *
     * @return string|float|int|null
     */
    public function getPayPrice()
    {
        return $this->payPrice;
    }

    /**
     * 赋值 payPrice - 支付金额(不含运费).
     * @param string|float|int|null $payPrice pay_price
     * @return static
     */
    public function setPayPrice($payPrice)
    {
        $this->payPrice = null === $payPrice ? null : $payPrice;
        return $this;
    }

    /**
     * 发货状态:0=未发货,1=已发货,2=已收货.
     * dispatch_status
     * @Column(name="dispatch_status", type="tinyint", length=2, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $dispatchStatus = 0;

    /**
     * 获取 dispatchStatus - 发货状态:0=未发货,1=已发货,2=已收货.
     *
     * @return int|null
     */
    public function getDispatchStatus(): ?int
    {
        return $this->dispatchStatus;
    }

    /**
     * 赋值 dispatchStatus - 发货状态:0=未发货,1=已发货,2=已收货.
     * @param int|null $dispatchStatus dispatch_status
     * @return static
     */
    public function setDispatchStatus($dispatchStatus)
    {
        $this->dispatchStatus = null === $dispatchStatus ? null : (int)$dispatchStatus;
        return $this;
    }

    /**
     * 发货费用.
     * dispatch_fee
     * @Column(name="dispatch_fee", type="decimal", length=10, accuracy=2, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $dispatchFee = NULL;

    /**
     * 获取 dispatchFee - 发货费用.
     *
     * @return string|float|int|null
     */
    public function getDispatchFee()
    {
        return $this->dispatchFee;
    }

    /**
     * 赋值 dispatchFee - 发货费用.
     * @param string|float|int|null $dispatchFee dispatch_fee
     * @return static
     */
    public function setDispatchFee($dispatchFee)
    {
        $this->dispatchFee = null === $dispatchFee ? null : $dispatchFee;
        return $this;
    }

    /**
     * 发货方式.
     * dispatch_type
     * @Column(name="dispatch_type", type="varchar", length=20, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $dispatchType = NULL;

    /**
     * 获取 dispatchType - 发货方式.
     *
     * @return string|null
     */
    public function getDispatchType(): ?string
    {
        return $this->dispatchType;
    }

    /**
     * 赋值 dispatchType - 发货方式.
     * @param string|null $dispatchType dispatch_type
     * @return static
     */
    public function setDispatchType($dispatchType)
    {
        $this->dispatchType = null === $dispatchType ? null : (string)$dispatchType;
        return $this;
    }

    /**
     * 发货模板.
     * dispatch_id
     * @Column(name="dispatch_id", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $dispatchId = NULL;

    /**
     * 获取 dispatchId - 发货模板.
     *
     * @return int|null
     */
    public function getDispatchId(): ?int
    {
        return $this->dispatchId;
    }

    /**
     * 赋值 dispatchId - 发货模板.
     * @param int|null $dispatchId dispatch_id
     * @return static
     */
    public function setDispatchId($dispatchId)
    {
        $this->dispatchId = null === $dispatchId ? null : (int)$dispatchId;
        return $this;
    }

    /**
     * 门店.
     * store_id
     * @Column(name="store_id", type="int", length=11, accuracy=0, nullable=false, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $storeId = 0;

    /**
     * 获取 storeId - 门店.
     *
     * @return int|null
     */
    public function getStoreId(): ?int
    {
        return $this->storeId;
    }

    /**
     * 赋值 storeId - 门店.
     * @param int|null $storeId store_id
     * @return static
     */
    public function setStoreId($storeId)
    {
        $this->storeId = null === $storeId ? null : (int)$storeId;
        return $this;
    }

    /**
     * 售后状态:-1=拒绝,0=未申请,1=申请售后,2=售后完成.
     * aftersale_status
     * @Column(name="aftersale_status", type="tinyint", length=2, accuracy=0, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $aftersaleStatus = NULL;

    /**
     * 获取 aftersaleStatus - 售后状态:-1=拒绝,0=未申请,1=申请售后,2=售后完成.
     *
     * @return int|null
     */
    public function getAftersaleStatus(): ?int
    {
        return $this->aftersaleStatus;
    }

    /**
     * 赋值 aftersaleStatus - 售后状态:-1=拒绝,0=未申请,1=申请售后,2=售后完成.
     * @param int|null $aftersaleStatus aftersale_status
     * @return static
     */
    public function setAftersaleStatus($aftersaleStatus)
    {
        $this->aftersaleStatus = null === $aftersaleStatus ? null : (int)$aftersaleStatus;
        return $this;
    }

    /**
     * 评价状态:0=未评价,1=已评价.
     * comment_status
     * @Column(name="comment_status", type="tinyint", length=2, accuracy=0, nullable=false, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $commentStatus = NULL;

    /**
     * 获取 commentStatus - 评价状态:0=未评价,1=已评价.
     *
     * @return int|null
     */
    public function getCommentStatus(): ?int
    {
        return $this->commentStatus;
    }

    /**
     * 赋值 commentStatus - 评价状态:0=未评价,1=已评价.
     * @param int|null $commentStatus comment_status
     * @return static
     */
    public function setCommentStatus($commentStatus)
    {
        $this->commentStatus = null === $commentStatus ? null : (int)$commentStatus;
        return $this;
    }

    /**
     * 退款状态:-1=拒绝退款,0=无,1=申请中,2=同意.
     * refund_status
     * @Column(name="refund_status", type="tinyint", length=1, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $refundStatus = NULL;

    /**
     * 获取 refundStatus - 退款状态:-1=拒绝退款,0=无,1=申请中,2=同意.
     *
     * @return int|null
     */
    public function getRefundStatus(): ?int
    {
        return $this->refundStatus;
    }

    /**
     * 赋值 refundStatus - 退款状态:-1=拒绝退款,0=无,1=申请中,2=同意.
     * @param int|null $refundStatus refund_status
     * @return static
     */
    public function setRefundStatus($refundStatus)
    {
        $this->refundStatus = null === $refundStatus ? null : (int)$refundStatus;
        return $this;
    }

    /**
     * 退款金额.
     * refund_fee
     * @Column(name="refund_fee", type="decimal", length=10, accuracy=2, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $refundFee = NULL;

    /**
     * 获取 refundFee - 退款金额.
     *
     * @return string|float|int|null
     */
    public function getRefundFee()
    {
        return $this->refundFee;
    }

    /**
     * 赋值 refundFee - 退款金额.
     * @param string|float|int|null $refundFee refund_fee
     * @return static
     */
    public function setRefundFee($refundFee)
    {
        $this->refundFee = null === $refundFee ? null : $refundFee;
        return $this;
    }

    /**
     * 退款原因.
     * refund_msg
     * @Column(name="refund_msg", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $refundMsg = NULL;

    /**
     * 获取 refundMsg - 退款原因.
     *
     * @return string|null
     */
    public function getRefundMsg(): ?string
    {
        return $this->refundMsg;
    }

    /**
     * 赋值 refundMsg - 退款原因.
     * @param string|null $refundMsg refund_msg
     * @return static
     */
    public function setRefundMsg($refundMsg)
    {
        $this->refundMsg = null === $refundMsg ? null : (string)$refundMsg;
        return $this;
    }

    /**
     * 快递公司.
     * express_name
     * @Column(name="express_name", type="varchar", length=60, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $expressName = NULL;

    /**
     * 获取 expressName - 快递公司.
     *
     * @return string|null
     */
    public function getExpressName(): ?string
    {
        return $this->expressName;
    }

    /**
     * 赋值 expressName - 快递公司.
     * @param string|null $expressName express_name
     * @return static
     */
    public function setExpressName($expressName)
    {
        $this->expressName = null === $expressName ? null : (string)$expressName;
        return $this;
    }

    /**
     * 快递公司编号.
     * express_code
     * @Column(name="express_code", type="varchar", length=60, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $expressCode = NULL;

    /**
     * 获取 expressCode - 快递公司编号.
     *
     * @return string|null
     */
    public function getExpressCode(): ?string
    {
        return $this->expressCode;
    }

    /**
     * 赋值 expressCode - 快递公司编号.
     * @param string|null $expressCode express_code
     * @return static
     */
    public function setExpressCode($expressCode)
    {
        $this->expressCode = null === $expressCode ? null : (string)$expressCode;
        return $this;
    }

    /**
     * 快递单号.
     * express_no
     * @Column(name="express_no", type="varchar", length=60, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $expressNo = NULL;

    /**
     * 获取 expressNo - 快递单号.
     *
     * @return string|null
     */
    public function getExpressNo(): ?string
    {
        return $this->expressNo;
    }

    /**
     * 赋值 expressNo - 快递单号.
     * @param string|null $expressNo express_no
     * @return static
     */
    public function setExpressNo($expressNo)
    {
        $this->expressNo = null === $expressNo ? null : (string)$expressNo;
        return $this;
    }

    /**
     * 附加字段.
     * ext
     * @Column(name="ext", type="varchar", length=2048, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|null
     */
    protected ?string $ext = NULL;

    /**
     * 获取 ext - 附加字段.
     *
     * @return string|null
     */
    public function getExt(): ?string
    {
        return $this->ext;
    }

    /**
     * 赋值 ext - 附加字段.
     * @param string|null $ext ext
     * @return static
     */
    public function setExt($ext)
    {
        $this->ext = null === $ext ? null : (string)$ext;
        return $this;
    }

    /**
     * 添加时间.
     * createtime
     * @Column(name="createtime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $createtime = NULL;

    /**
     * 获取 createtime - 添加时间.
     *
     * @return int|null
     */
    public function getCreatetime(): ?int
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime - 添加时间.
     * @param int|null $createtime createtime
     * @return static
     */
    public function setCreatetime($createtime)
    {
        $this->createtime = null === $createtime ? null : (int)$createtime;
        return $this;
    }

    /**
     * 更新时间.
     * updatetime
     * @Column(name="updatetime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $updatetime = NULL;

    /**
     * 获取 updatetime - 更新时间.
     *
     * @return int|null
     */
    public function getUpdatetime(): ?int
    {
        return $this->updatetime;
    }

    /**
     * 赋值 updatetime - 更新时间.
     * @param int|null $updatetime updatetime
     * @return static
     */
    public function setUpdatetime($updatetime)
    {
        $this->updatetime = null === $updatetime ? null : (int)$updatetime;
        return $this;
    }

    /**
     * 删除时间.
     * deletetime
     * @Column(name="deletetime", type="int", length=11, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var int|null
     */
    protected ?int $deletetime = NULL;

    /**
     * 获取 deletetime - 删除时间.
     *
     * @return int|null
     */
    public function getDeletetime(): ?int
    {
        return $this->deletetime;
    }

    /**
     * 赋值 deletetime - 删除时间.
     * @param int|null $deletetime deletetime
     * @return static
     */
    public function setDeletetime($deletetime)
    {
        $this->deletetime = null === $deletetime ? null : (int)$deletetime;
        return $this;
    }

    /**
     * 平台优惠券抵用金额.
     * coupon_fee
     * @Column(name="coupon_fee", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $couponFee = NULL;

    /**
     * 获取 couponFee - 平台优惠券抵用金额.
     *
     * @return string|float|int|null
     */
    public function getCouponFee()
    {
        return $this->couponFee;
    }

    /**
     * 赋值 couponFee - 平台优惠券抵用金额.
     * @param string|float|int|null $couponFee coupon_fee
     * @return static
     */
    public function setCouponFee($couponFee)
    {
        $this->couponFee = null === $couponFee ? null : $couponFee;
        return $this;
    }

    /**
     * 商品总价.
     * goods_amount
     * @Column(name="goods_amount", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $goodsAmount = NULL;

    /**
     * 获取 goodsAmount - 商品总价.
     *
     * @return string|float|int|null
     */
    public function getGoodsAmount()
    {
        return $this->goodsAmount;
    }

    /**
     * 赋值 goodsAmount - 商品总价.
     * @param string|float|int|null $goodsAmount goods_amount
     * @return static
     */
    public function setGoodsAmount($goodsAmount)
    {
        $this->goodsAmount = null === $goodsAmount ? null : $goodsAmount;
        return $this;
    }

    /**
     * 支付金额.
     * total_fee
     * @Column(name="total_fee", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $totalFee = NULL;

    /**
     * 获取 totalFee - 支付金额.
     *
     * @return string|float|int|null
     */
    public function getTotalFee()
    {
        return $this->totalFee;
    }

    /**
     * 赋值 totalFee - 支付金额.
     * @param string|float|int|null $totalFee total_fee
     * @return static
     */
    public function setTotalFee($totalFee)
    {
        $this->totalFee = null === $totalFee ? null : $totalFee;
        return $this;
    }

    /**
     * 单件实际支付金额.
     * item_pay_fee
     * @Column(name="item_pay_fee", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $itemPayFee = NULL;

    /**
     * 获取 itemPayFee - 单件实际支付金额.
     *
     * @return string|float|int|null
     */
    public function getItemPayFee()
    {
        return $this->itemPayFee;
    }

    /**
     * 赋值 itemPayFee - 单件实际支付金额.
     * @param string|float|int|null $itemPayFee item_pay_fee
     * @return static
     */
    public function setItemPayFee($itemPayFee)
    {
        $this->itemPayFee = null === $itemPayFee ? null : $itemPayFee;
        return $this;
    }

    /**
     * 单件支付贝壳总数.
     * item_shell_fee
     * @Column(name="item_shell_fee", type="decimal", length=10, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $itemShellFee = NULL;

    /**
     * 获取 itemShellFee - 单件支付贝壳总数.
     *
     * @return string|float|int|null
     */
    public function getItemShellFee()
    {
        return $this->itemShellFee;
    }

    /**
     * 赋值 itemShellFee - 单件支付贝壳总数.
     * @param string|float|int|null $itemShellFee item_shell_fee
     * @return static
     */
    public function setItemShellFee($itemShellFee)
    {
        $this->itemShellFee = null === $itemShellFee ? null : $itemShellFee;
        return $this;
    }

    /**
     * 单件积分支付数.
     * item_score_fee
     * @Column(name="item_score_fee", type="decimal", length=11, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $itemScoreFee = NULL;

    /**
     * 获取 itemScoreFee - 单件积分支付数.
     *
     * @return string|float|int|null
     */
    public function getItemScoreFee()
    {
        return $this->itemScoreFee;
    }

    /**
     * 赋值 itemScoreFee - 单件积分支付数.
     * @param string|float|int|null $itemScoreFee item_score_fee
     * @return static
     */
    public function setItemScoreFee($itemScoreFee)
    {
        $this->itemScoreFee = null === $itemScoreFee ? null : $itemScoreFee;
        return $this;
    }

    /**
     * 单件积分服务费金额.
     * item_score_money_fee
     * @Column(name="item_score_money_fee", type="decimal", length=11, accuracy=2, nullable=false, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false, unsigned=false, virtual=false)
     * @var string|float|int|null
     */
    protected $itemScoreMoneyFee = NULL;

    /**
     * 获取 itemScoreMoneyFee - 单件积分服务费金额.
     *
     * @return string|float|int|null
     */
    public function getItemScoreMoneyFee()
    {
        return $this->itemScoreMoneyFee;
    }

    /**
     * 赋值 itemScoreMoneyFee - 单件积分服务费金额.
     * @param string|float|int|null $itemScoreMoneyFee item_score_money_fee
     * @return static
     */
    public function setItemScoreMoneyFee($itemScoreMoneyFee)
    {
        $this->itemScoreMoneyFee = null === $itemScoreMoneyFee ? null : $itemScoreMoneyFee;
        return $this;
    }

}
